INT2F.TXT --------- Tekst ten zawiera opis funkcji przerwania 2F program˘w PLKBD, PLEGA i PLPRN. Przerwanie 2F wywo’ujemy z rejestrem AH = nr procesu (PLKBD=A0, PLEGA=A1, PLPRN = A2). Rejestr AL zawiera nr funkcji. Pozosta’e rejestry zawieraj† ewentualne parametry. Poni§ej opisano dok’adnie funkcje poszczeg˘lnych program˘w. -------------------- 1. PLKBD (AH = A0h) -------------------- ;AL= ; 00 get installed state - odpowied¦ wed’ug standard˘w DOS-a (AL=FF - ; program installed, AL=0 - program not installed, OK to install, ; AL=1 - program not installed, not OK to install) ; ; 01 set prefixes - bx zawiera PFX1, cx zawiera PFX2. Przy okazji ; zerowane s† flagi PFX1_STATE, PFX2_STATE. ; ; 02 get prefixes - odpowied¦ w bx i cx ; ; 03 set tables - ds:si zawiera adres tablicy translacji. Tablica zawiera ; 3*96 + 2*50 + 40 = 434 bajty. Pierwsze trzy tablice zawieraj† kody ; klawiszy podstawianych w prostych podstawieniach oraz w podstawieniach ; z martwym klawiszem (1 lub drugi prefiks). Znaki przedefiniowywane ; nale§† do obszaru 32ö126, znaki podstawiane 0ö255. Nast‘pne dwie ; tablice zawieraj† kody znak˘w podstawianych pod zestawienia ; Alt-x i Alt-Shift-x. Ostatnia tablica umo§liwia przedefiniowanie ; 10 scan-kod˘w. ; ; 04 get tables - es:di zawiera adres bufora na tablice konwersji. ; ; 05 set standard - bl zawiera nr standardu. Ježli bl=0 (USER), to ds:si ; zawiera adres do 18-bajtowej tablicy z polskimi literami. ; ; 06 get standard - ustawiany jest bl i pod es:di jest wysy’anych 18 bajt˘w ; ; 07 set mode (bl zawiera tryb 0ö9) ; ; 10h get extended info (wszystkie moje programy rezyduj†ce). Funkcja zwraca ; - adres zmiennej interrupts_S (ES:BX), ; - wersj‘ programu (AX) ; Dane te s† potrzebne do wyrzucenia programu z pami‘ci. ------------------- 2. PLEGA (AH = A1h) ------------------- ;AL= ; 00 get installed state - odpowied¦ wed’ug standard˘w DOS-a, ; ; 01 set font & standard - bl (0, 20-50) ilosc wierszy na stronie, ; bh=ff - RAM, bh=0 - ROM, ds:si - standard. ; ; 02 get font - bl i bh sa ustawiane jak wyzej, al - ilosc bajtow / lit ; ; 03 set redef_table - ds:si zawiera tabele do przekopiowania (96 bajtow - ; tyle znak˘w mo§e zdefiniowaŤ program PLEGA w ka§dej z czcionek) ; ; 04 get redef_table - es:si adres bufora, do ktorego zostanie skopiowana ; tabela, ; ; 05 set font shape - bl=8,14,16, ds:si adres czcionki ; ; 06 get font shape - bl=8,14,16, es:di bufor na czcionke, ; ; 07 set font - jak funkcja 01, ale bez kopiowania standardu, ; ; 08 okresla max. ilosc liter (cx=18-96), nalezy uzywac przed zaistalowaniem ; fontow. Funkcja zwraca w dx offset konca czesci rezydentnej. ; ; 09 gasi / zapala ekran VGA ; ; 0a zmienia kolory na odcienie szarožci i odwrotnie ; ; 10h get extended info (wszystkie moje programy rezyduj†ce). Funkcja zwraca ; - adres zmiennej interrupts_S (ES:BX), ; - wersje programu (AX) ------------------- 3. PLPRN (AH = A2h) ------------------- ;AL= ; 00 get installed state - odpowied¦ wed’ug standard˘w DOS-a, ; ; 01 set font & standard - bl zawiera typ czcionki (0-4) - DRAFT, NLQ, ; ELITE, ELITE NLQ, CONDENSED. Drukarka jest resetowana (zalozenie, ; ze mamy wtedy DRAFT. Do bufora jest ladowany odpowiedni kod. ; bh=ff - RAM, bh=0 - ROM, ds:si - standard. ; ; 02 get font - bl zwraca aktywn† czcionk‘ (definicje na pocz†tku zbioru), ; bh jak wyzej. ; ; 03 set logic_table - ds:si zawiera tabele do przekopiowania (96 bajtow), ; ; 04 get logic_table - es:di adres bufora, do ktorego zostanie skopiowana ; tabela, ; ; 05 set filename - ds:si - nazwa zbioru. ; ; 06 get filename - es:di bufor na nazwe zbioru. ; ; 07 set font - jak funkcja 01, ale bez kopiowania standardu. Bl zawiera ; bitowy kod fontu (a nie liczbe 0 - 4). BH - ROM/RAM. Ježli BL ma ; ustawiony najstarszy bit, drukarka nie jest resetowana. ; ; 08 ustawia czas martwy po zresetowaniu drukarki (default 36 tick˘w). ; IložŤ tick˘w podajemy w bx, bx zwraca te§ star† iložŤ tick˘w. ; ; 09 w’†cza/wy’†cza d¦wi‘k (bl=0 - off, bl!=0 - on) ; ; 10h get extended info (wszystkie moje programy rezyduj†ce). Funkcja zwraca ; - adres zmiennej interrupts_S (ES:BX), ; - wersj‘ programu (AX)